package Key_Value类型

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object reduceByKey {
    //在一个(K,V)的RDD上调用，返回一个(K,V)的RDD，使用指定的reduce函数，将相同key的值聚合到一起，reduce任务的个数可以通过第二个可选的参数来设置。
    def main(args: Array[String]): Unit = {

        val config: SparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount")

        val sc = new SparkContext(config)

        val rdd = sc.parallelize(List(("female", 1), ("male", 5), ("female", 5), ("male", 2)))

        val reduceRDD: RDD[(String, Int)] = rdd.reduceByKey((x, y) => x + y)

        reduceRDD.collect().foreach(println)
    }

}
